1. Field of the Invention
The present invention generally relates to function generators and more particularly to a method, system and computer program product for digitally generating a function. The present invention includes use of various technologies described in the references identified in the appended LIST OF REFERENCES and cross-referenced throughout the specification by numerals in brackets corresponding to the respective references, the entire contents of all of which are incorporated by reference herein.
2. Discussion of the Background
In wireless communications, high performance Voltage-Controlled Oscillators (VCOs) are not usually selected because of cost limitations. High step size in frequency and high delays to get to a stable frequency results in difficulties tracking frequency variations due to various factors, such as channel characteristics, drifts, Doppler shifts, [5] etc. One-way to track such frequency variations is by adding a device to take care of small frequency offsets coupled to the VCO. For this purpose, a Direct Digital Synthesis (DDS) device with high resolution and spectral purity can be used.
A typical DDS has two basic sections, a phase accumulator section and a set of samples stored in memory section (e.g., such as a Read Only Memory (ROM), etc.), which can be addressed. In such a typical design, a higher desired resolution results in a higher number of bits used in the phase accumulator section. Therefore, the number of samples that have to be stored increases as the desired resolution increases. However, larger ROMs bring additional problems, such as increased power consumption, larger needed chip (e.g., Application Specific Integrated Circuit ASIC, etc.) area, etc.
Consequently, techniques, such as Taylor series approximation [6], Nicholas architectures [3], Sunderland architectures [3], etc., have been proposed to address such problems. In these techniques, values are split in to two sets and stored in a coarse ROM and a fine ROM. This reduces the number of samples needed to generate a sine wave while maintaining a good spectral response. However, such techniques suffer from use of multiple ROMs to store the fine and coarse values, resulting increased power consumption, larger needed chip area, etc.
Therefore, there is a need for a method, system and computer program product for improving DDS with respect to ROM size in order to reduce power consumption and chip area.
The above and other needs are addressed by the present invention, which provides an improved method, system and computer program product for digitally generating a function.
Accordingly, in one aspect of the present invention there is provided a method, system and computer program product for digitally generating a function, including a phase accumulator configured to receive a phase value and integrate the phase value to generate an accumulation result; an address generator configured to generate consecutive addresses based on the accumulation result; a storage device configured to retrieve initial digital function values based on the consecutive addresses; a coefficient calculator configured to generate coefficients for a polynomial interpolation based on the initial digital function values; and an interpolator configured to generate a final digital function value corresponding to the phase value based on the accumulation result and the coefficients.
Still other aspects, features, and advantages of the present invention are readily apparent from the following detailed description, simply by illustrating a number of particular embodiments and implementations, including the best mode contemplated for carrying out the present invention. The present invention is also capable of other and different embodiments, and its several details can be modified in various respects, all without departing from the spirit and scope of the present invention. Accordingly, the drawing and description are to be regarded as illustrative in nature, and not as restrictive.